package com.longge;

import java.util.HashMap;

/**
 * @创建人 xinglongge
 * @创建时间 2021/7/13
 * @描述
 */
public class CountAndSay {
    public String countAndSay(int n) throws RuntimeException {
        // base case 当n=1 返回1
        if (n == 1) return "1";
        //获取前一个n的结果
        String pre = countAndSay(n - 1);
        //后序遍历给出结果
        StringBuilder res = new StringBuilder();
        //从前一个n结果推算当前n的结果 注意一下边界问题
        char preChar = ' ';
        int count = 0;
        for (int i = 0; i < pre.length(); i++) {
            char c = pre.charAt(i);
            if (preChar == ' ' || preChar == c) {
                count++;
            } else {
                res.append(count).append(preChar);
                count = 1;
            }
            preChar = c;
            if (i == pre.length() - 1) res.append(count).append(preChar);
        }
        return res.toString();
    }


}
